var eventproxy = require('eventproxy')
var superagent = require('superagent')
var cheerio = require('cheerio')
// url 模块是 Node.js 标准库里面的
var url = require('url')

var cnodeUrl = 'https://cnodejs.org/'

superagent.get(cnodeUrl).end(function (err, res) {
    if (err) {
        return console.error(err)
    }

    var topicUrls = []

    var $ = cheerio.load(res.text)
    $('#topic_list .topic_title').each(function (idx, element){
        var $element = $(element)
        // url.resolve 来自动推断相对url变成完整 url
        var href = url.resolve(cnodeUrl, $element.attr('href'))
        topicUrls.push(href)
    })
    console.log(topicUrls)

    var ep = new eventproxy()

    ep.after('topic_html', topicUrls.length, function (topics){
        topics = topics.map(function (topicPair){
            var topicUrl = topicPair[0]
            var topicHtml = topicPair[1]
            var $ = cheerio.load(topicHtml)
            return ({
                title: $('.topic_full_title').text().trim(),
                href: topicUrl,
                comment1: $('.reply_content').eq(0).text().trim()
            })
        })
        console.log('final:')
        console.log(topics)
    })
    
    topicUrls.forEach(function(topicUrl){
        superagent.get(topicUrl).end(function(err, res){
            console.log('fetch'+topicUrl+'successful')
            ep.emit('topic_html', [topicUrl, res.text])
        })
    })
})